Aspects for Stages: Cross Cutting Concerns for Metaprograms
نویسندگان
چکیده
In multi-stage languages the program code is finalized though a sequence of transformations defined in the program itself, a process known as staging, with stages also referred as metaprograms. Since stages are essentially programs, they may also require application of aspectoriented methods to handle crosscutting concerns, something not considered or supported in existing aspect systems. We introduce aspect-oriented support for multi-stage languages by identifying three aspect types for the staging pipeline, namely pre-, inand poststaging. We discuss their implementation in a language supporting compile-time metaprogramming, where aspects are realized as batches of AST transformation metaprograms, accompanied by an AOP-specific library. We also provide example scenarios where the proposed aspect types may be used in practice. Finally, we show how full-scale source-level aspect debugging is facilitated during the program compilation process.
منابع مشابه
Building Composable Aspect-Specific Languages with Logic Metaprogramming
The goal of aspect-oriented programming is to modularize crosscutting concerns (or aspects) at the code level. These aspects can be defined in either a general-purpose language or in a language that is fine-tuned to a specific aspect in consideration. Aspect-specific languages provide more concise and more readable aspect declarations but are limited to a specific domain. Moreover, multiple asp...
متن کاملRefactoring object oriented software: cross-cutting concerns identification and isolation
The capability of dividing a big problem in smaller, independent and more tractable units is crucial for the success of the project. Object oriented decomposition uses to work well to manage decomposition in a software project. Altough there are some concerns that overcome the object oriented software decomposition schema. These concerns are called cross-cutting concerns. Being able to identify...
متن کاملBridging Java and AspectJ through Explicit Join Points TECHNICAL REPORT ejp-200705-1
Through AspectJ, aspect-oriented programming (AOP) is becoming of increasing interest and availability to Java programmers as it matures as a methodology for improved software modularity via the separation of cross-cutting concerns. AOP proponents often advocate a development strategy where Java programmers write the main application, ignoring cross-cutting concerns, and then AspectJ programmer...
متن کاملTechnical Report EJP-200712-1 Cooperative Aspect-Oriented Programming
Aspect-oriented programming (AOP) seeks to improve software modularity via the separation of cross-cutting concerns. AOP proponents often advocate a development strategy where programmers write the main application (base code), ignoring cross-cutting concerns, and then aspect programmers, domain experts in their specific concerns, weave in the logic for these more specialized cross-cutting conc...
متن کاملAspects in Architectural Description of Evolving Systems
Software architecture is the most important artifact in the software life cycle. The architectural description and the architectural design decide the quality and the longevity of the software. The design decisions made to arrive at a particular software architecture decide the value of quality attributes such as performance, reliability, security and modifiability. Also the percentage of desig...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
- Journal of Object Technology
دوره 13 شماره
صفحات -
تاریخ انتشار 2014